#--
# Proyecto Único (Etapa 2)
# Analizador Sintáctico
# 
# Autores:
# (Grupo R07)
# César Hernández (06-39724)
# Daniel Valera (07-41725)
# 
# Versión: 0.1
#++
# :title:Proyecto Único (Etapa 2)
# 
# = Proyecto Único (Etapa 2)
# = Analizador Sintáctico
# 
# <DESCRIPCIÓN DE LA ETAPA DEL PROYECTO>
# 
# <b>Autores:</b>
# (Grupo R07)
# Cesar Hernández (06-39724)
# Daniel Valera (07-41725)
# 
# <b>Versión:</b> 2.0
# ---
# = Main.rb
# Archivo principal.

require "Exceptions"
require "Lexer"
require "Token"
require "Parser"

#--

# Se leen los argumentos ingresados por consola.
if ARGV[0] == "-e"
  lexer = Lexer.new(ARGV[1])
else
  archive = File.open(ARGV[0],"r")
  lexer = Lexer.new(archive)
end

# Se inicializa el parser.
parser = Parser.new(lexer)
parser.parse()

# Se lee e interpretan los tokens que se encuentren en el archivo o la cadena 
# de caracteres indicada en los argumentos ingresados por consola.
#tokens = []
#errors = []
#token = []

#begin
  #token = lexer.yylex()
  #tokens[tokens.length] = token
#rescue NotATokenError => error
  #errors[errors.length] = error.reason
#end while (token != nil)

#if (tokens[-1] == nil)
  #tokens.delete_at(-1)
#end

# Se imprime la lista de tokens si ningún error fue detectado. En caso 
# contrario, se imprime la lista de errores.
#if errors.empty?
  #tokens.each do |tokens|
  #puts(tokens.to_s)
  #end
#else
  #errors.each do |errors|
  #puts(errors.to_s)
  #end
#end

#++
